#!/bin/bash

# testes.sh
#
# Execucao automatica dos testes do trabalho 2
# 
# Compila e executa o codigo para diferentes os testes
# e configuracoes utlizando os macros presentes no codigo
#
# Grupo 12 turma A
# Bruno Lima		7239194 
# Lemuel Bonifacio	7277728 
# Rafael Zanoello	7277429 


make resultados

#-------------------------------------

## Testes para Wikipedia sequencial ##
echo "Testes wikipedia.txt sequencial" > resultados/testes_wiki.txt

# Teste 1 tempo para encontrar palindromos

make -B wiki-seq dflag="-DTESTE1"
./wiki-seq >> resultados/testes_wiki.txt

# Teste 2 tempo para encontrar palindromos e calcular primos

make -B wiki-seq dflag="-DTESTE2"
./wiki-seq >> resultados/testes_wiki.txt

# Teste 3 execucao completa salvando os palindromos
 
make -B wiki-seq
./wiki-seq >> resultados/testes_wiki.txt

#-----------------------------------

## Testes para Shakespe sequencial ##
echo "Testes shakespe.txt sequencial" > resultados/testes_shakespe.txt

# Teste 1 tempo para encontrar frases palindromo

make -B shakespe-seq dflag="-DTESTE1"
./shakespe-seq >> resultados/testes_shakespe.txt

# Teste 2 tempo para encontrar palavras palindromos

make -B shakespe-seq dflag="-DTESTE2"
./shakespe-seq >> resultados/testes_shakespe.txt

# Teste 3 tempo para encontrar todos palindromos

make -B shakespe-seq dflag="-DTESTE3"
./shakespe-seq >> resultados/testes_shakespe.txt

# Teste 4 execucao completa salvando os palindromos

make -B shakespe-seq
./shakespe-seq >> resultados/testes_shakespe.txt

#-----------------------------------

## Testes para Wikipedia MPI ##
echo >> resultados/testes_wiki.txt
echo "Testes wikipedia.txt MPI" >> resultados/testes_wiki.txt

for bufsz in 1 2 4 8 16 32 64 128 256; do
	echo -e "\nBlocos de "$bufsz"KB" >> resultados/testes_wiki.txt
	make -B wiki-mpi dbuff="-DBUFFKB="$bufsz
	for nnos in $(seq 2 12); do
		mpirun -np $nnos ./wiki-mpi >> resultados/testes_wiki.txt
	done 
done

#-----------------------------------

## Testes para Shakespe MPI ##
echo >> resultados/testes_shakespe.txt
echo "Testes wikipedia.txt MPI" >> resultados/testes_shakespe.txt

for bufsz in 1 2 4 8 16 32 64 128 256; do
	echo -e "\nBlocos de "$bufsz"KB" >> resultados/testes_shakespe.txt
	make -B shakespe-mpi dbuff="-DBUFFKB="$bufsz
	for nnos in $(seq 2 12); do
		mpirun -np $nnos ./shakespe-mpi >> resultados/testes_shakespe.txt
	done 
done

#-----------------------------------

## Testes para Wikipedia OpenMP ##
echo >> resultados/testes_wiki.txt
echo "Testes wikipedia.txt OpenMP" >> resultados/testes_wiki.txt

for bufsz in 1 2 4; do
	for thr in $(seq 2 2 14); do
		echo -e "\n\nBlocos de "$bufsz"KB e "$thr" thr" >> resultados/testes_wiki.txt
		make -B wiki-omp tbloco="-DTBLOCO="$bufsz nthreads="-DNTHREADS="$thr
		./wiki-omp >> resultados/testes_wiki.txt
	done 
done

#-----------------------------------

## Testes para Shakespe OpenMP ##
echo >> resultados/testes_shakespe.txt
echo "Testes wikipedia.txt OpenMP" >> resultados/testes_shakespe.txt

for bufsz in 1 2 4; do
	for thr in $(seq 2 2 14); do
		echo -e "\n\nBlocos de "$bufsz"KB e "$thr" thr"  >> resultados/testes_shakespe.txt
		make -B shakespe-omp tbloco="-DTBLOCO="$bufsz nthreads="-DNTHREADS="$thr
		./shakespe-omp >> resultados/testes_shakespe.txt
	done 
done


